package LeetCode;

import javax.lang.model.element.NestingKind;
import java.util.*;

public class No49 {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s = sc.nextLine();
        String[] s1 = s.split(",");
        System.out.println(groupAnagrams(s1));
    }

    /*
        先设置一个hashmap，给每个String数组中的成员排序
        比如 tea ate eat 排序后都是 aet，
        hashmap中的key为排序后的字符串，value为排序前的字符串链表
        判断hashmap中是否存在排序完后的key
        存在则value链表加入当前字符串，不存在则创建新的链表并加入当前字符串。
        最后遍历hashmap中的key和value，存放到题目要求的数组中并返回
    */
    public static List<List<String>> groupAnagrams(String[] strs) {
        List<List<String>> list = new ArrayList<List<String>>();
        HashMap<String,List<String>> map = new HashMap();
        for (int i = 0; i < strs.length; i++) {
            char[] chars = strs[i].toCharArray();
            Arrays.sort(chars);
            String s = new String(chars) ;
            if(!map.containsKey(s)) map.put(s,new ArrayList<String>());
            map.get(s).add(strs[i]);
        }
        for (String key: map.keySet()) {
            list.add(map.get(key));
        }
        return list;
    }
}
